System and method for matching purchase records to mobile devices

ABSTRACT

A mobile device and sales transaction matching system matches sales records to a buyer operating a mobile device. The sales transactions are generated by point-of-sales system, The matching system defines a mobile data sphere for each mobile data point and a transaction sphere for each purchase record before determining whether they overlap or not. For each mobile data point, there is a list of corresponding overlapping transactions. Similarity function is created and applied to the two dimensional maps of overlapping transactions corresponding to a list of mobile data points of the mobile device. The application of the similarity function determines the transactions that are made by the buyer. Both the mobile data points and purchase records are public data. Each sphere indicates a physical distance and a time radius.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of co-pending U.S. patentapplication Ser. No. 14/990,964, entitled “SYSTEM AND METHOD FORDETERMINING PURCHASE RECORDS OF MOBILE DEVICES TO PROVIDE EFFECTIVEMOBILE ADVERTISING,” filed Jan. 8, 2016, assigned to ADNOLI, LLC ofChicago, Ill., and which is hereby incorporated by reference in itsentirety to provide continuity of disclosure.

FIELD OF THE DISCLOSURE

The present invention generally relates to a system and method fordigital advertising, and more particularly relates to a system andmethod for mobile advertising. More particularly still, the presentdisclosure relates to a system and method for matching purchase historyto mobile devices based on public data to provide more effective mobileadvertising to the Internet connected mobile devices.

DESCRIPTION OF BACKGROUND

Advertising is a form of promoting and marketing products and servicesto potential buyers. With the rapid growth of Internet technologies andwireless communication technologies, online advertising and mobileadvertising have become critically important for businesses to reachconsumers. In particular, with the increasing popularity of smart phones(such as iPhones), mobile marketing is expanding at a high speed allover the world. As an interactive medium, mobile devices allow marketersto engage their target consumers with their brands within a givenproximity to a location and through a medium frequently connected to aconsumer. Mobile advertising is thus obtaining a far greater reach forproduct and service providers. Accordingly, various methods of mobileadvertising have been proposed and practiced. For example, mobile webbanner, short text, video billboard, mobile in-app display, and othermeans have become commercially available.

However, due to various factors, mobile advertising is still not aneffective marketing tool In response, targeted advertising onto mobiledevices (such as smart phones, tablet computers, digital billboards,connected cars and watches, etc.) based on proprietary information hasbeen proposed. To provide such targeted mobile advertising, a marketeranalyzes a user's past purchase transactions and sends contextuallyrelevant message (such as promotions) to the user's mobile device. Thisapproach is feasible only when the marketer has knowledge of theidentity of the user, the user's past purchase data and the user'smobile device identification. Such prerequisite information is notavailable in many other use cases.

U.S. Pat. No. 8,792,909 proposes matching a mobile device to a householdbased on the location data of the mobile device, and then targets themobile device with promotions. U.S. Pat. No. 8,489,596 profiles a userof a mobile device based on location data of the mobile device. The goalis to derive intelligence on the user's behavior, and thus make targetedadvertising to the user's mobile device.

However, the conventional methods for mobile advertising fail to obtainrelevant, high-quality intelligence on consumers' past consumption toprovide effective advertising onto their mobile devices and may resultin spam, irrelevant or unwanted messages. A purchaser's consumptioninformation includes, for example, the types of products, brands orcategories of products, product prices, purchase pattern, amount ofconsumption, time of purchases, etc.

Accordingly, there is a need for a new system and method for matchingconsumers' past purchase records to their mobile devices, and providemore effective mobile advertising to the mobile devices based onconsumption intelligence derived from the past purchase records. Thereis a further need for the new mobile advertising system and method torely on publicly available data alone, not private personalidentification information (“PII”) of the consumers. PII is data thatcould potentially identify a specific individual. In other words, PIIdata is information that allows one individual to be distinguished fromanother.

OBJECTS OF THE DISCLOSED SYSTEM, METHOD, AND APPARATUS

Accordingly, it is an object of this disclosure to provide a system andmethod to match sales transactions to mobile devices of thecorresponding purchasers.

Another object of this disclosure is to provide a system and method tomatch sales transactions to mobile devices of the correspondingpurchasers and create contextual segments for delivering relevantmessages.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data and credit carddata.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data, credit card typeand last-four digits of credit cards.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data, and retailer'sLoyalty Card data.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data, and retailer'sLoyalty Cards' entire numbers.

Another object of this disclosure is to provide a system and method tomatch public sales transactions to mobile devices of the correspondingpurchasers using public mobile device location data, and retailer'sLoyalty Cards' last-four digits.

Another object of this disclosure is to provide a system and method toiteratively match public sales transactions to mobile devices of thecorresponding purchasers using public mobile device location data,credit card type and last-four digits of credit cards.

Another object of this disclosure is to provide a system and method tomatch sales transactions to mobile devices of the correspondingpurchasers, derive intelligence into the purchaser' past consumption,and provide targeted mobile advertising to the mobile devices based onthe intelligence.

Another object of this disclosure is to provide a system and method tomatch sales transactions to mobile devices of the correspondingpurchasers, derive intelligence into the purchasers' consumption,provide targeted mobile advertising to the mobile devices based on theintelligence, and measure the effectiveness of the mobile advertising.

Another object of this disclosure is to provide a system and method fordetermining purchase records of mobile devices to provide contextuallyrelevant metadata for analytics, digital marketing and advertising.

Another object of this disclosure is to provide a system and method toiteratively match public sales transactions to mobile devices of thecorresponding purchasers using public mobile device location data and aunique retailer ID.

Other advantages of this disclosure will be clear to a person ofordinary skill in the art. It should be understood, however, that asystem or method could practice the disclosure while not achieving allof the enumerated advantages, and that the protected disclosure isdefined by the claims.

SUMMARY OF THE DISCLOSURE

Generally speaking, pursuant to the various embodiments, the presentdisclosure provides a system and method for matching purchase history tomobile devices based on public data to provide more effective mobileadvertising to the mobile devices. The mobile advertising systemincludes a database, and a mobile advertising server. The mobileadvertising server includes a memory, a processing unit accessing thememory, a network interface coupled to the processing unit andoperatively coupled to the database, and a server software applicationoperating on the processing unit. The mobile advertising server isadapted to communicate with a sales transaction server system and amobile device location data server system over a wide area network viathe network interface. The server software application is adapted toretrieve a first set of purchase records from the sales transactionserver system, and retrieve a set of mobile device location data recordsfrom the mobile device location data server system. The set of mobiledevice location data records corresponds to a set of mobile devices; andthe set of mobile device location data records includes a list of mobiledevice location data records of a first mobile device within the set ofmobile devices. The server software application is also adapted to matcha subset of purchase records of the first set of purchase records to thelist of mobile device location data records. The subset of purchaserecords forms a first purchase history of a buyer operating the firstmobile device. Moreover, the server software application is adapted todetermine a first mobile advertisement for the first mobile device basedon the first purchase history. The first mobile advertisement indicatesa product. Furthermore, the server software application is adapted tosend the first mobile advertisement to the first mobile device, andstore the first mobile advertisement into the database.

The present disclosure facilitates data onboarding and derives benefitstherefrom. Data onboarding bridges the gap between offline and onlinedata. The present disclosure enables marketers and other businessentities to leverage the rich troves of customer purchase history datafor more accurate and targeted advertising and marketing.

Further in accordance with the present teachings is a mobile device andsales transaction matching system. The mobile device and salestransaction matching system includes a database and a server computerhaving a memory, a processing unit accessing the memory, a networkinterface coupled to the processing unit and operatively coupled to thedatabase, and a specialized server software application operating on theprocessing unit. The server computer is adapted to communicate with asales transaction server system and a mobile device location data serversystem. The specialized server software application is adapted toretrieve a set of purchase records from the sales transaction serversystem, and retrieve a set of mobile data points from the mobile devicelocation data server system. The set of mobile data points correspondsto a first mobile device.The specialized server software application is also adapted to, for eachmobile data point within the set of mobile data point, define a mobiledata sphere, and for each purchase record within the set of purchaserecords, define a transaction sphere. In addition, the specializedserver software application is adapted to compare each the mobile datasphere with each the transaction sphere to determine a list of overlapping purchase records for each mobile data point, thereby forming aplurality of lists of over lapping purchase records for the first mobiledevice. The mobile data sphere of the mobile data point overlaps withthe transaction sphere of each purchase record within the list of overlapping purchase records corresponding to the mobile data point.Moreover, specialized server software application is adapted to create asimilarity function for determining similarity between transactions, andapply the similarity function to each pair of purchase records withinthe plurality of lists of over lapping purchase records to determinepurchase records of a user of the first mobile device. Each the mobiledata sphere indicates a physical distance from a location ofcorresponding the mobile data point and a radius time from a timestampof corresponding the mobile data point. Each the transaction sphereindicates a physical distance from a store location of corresponding thepurchase record and radius of time from a timestamp of corresponding thepurchase record. A mobile data sphere is said to be overlapping with atransaction sphere based on a Euclidean distance or a Manhattan metric.The similarity function returns a value between zero and one whenapplied to a pair of purchase records. The similarity function is aJaccard Index, a modified Jaccard Index, a Tanimoto similarity, or aSorensen-Dice Index. The similarity function is created based on a setof training purchase records. The set of purchase records is public dataand the set of mobile data points is public data. Each purchase recordwithin the set of purchase records includes a store location, a salestimestamp, and a product identifier. Each data point within the set ofmobile data points includes a mobile device identifier, a mobile devicelocation, and a mobile device timestamp.

BRIEF DESCRIPTION OF THE DRAWINGS

Although the characteristic features of this disclosure will beparticularly pointed out in the claims, the invention itself, and themanner in which it may be made and used, may be better understood byreferring to the following description taken in connection with theaccompanying drawings forming a part hereof, wherein like referencenumerals refer to like parts throughout the several views and in which:

FIG. 1 is a simplified block diagram of a new mobile advertising systemin accordance with this disclosure.

FIG. 2 is a flowchart depicting a process by which a new mobileadvertising server system matches sales transactions to mobile devicesof the corresponding purchasers, and provides improved mobileadvertising to the mobile devices in accordance with the teachings ofthis disclosure.

FIG. 3 is a simplified block diagram depicting a sales transactionrecord in accordance with the teachings of this disclosure.

FIG. 4 is a simplified block diagram depicting a mobile device locationdata record in accordance with the teachings of this disclosure.

FIG. 5 is a simplified block diagram illustrating a mobiledevice-transaction record in accordance with the teachings of thisdisclosure.

FIG. 6 is a flowchart depicting a process by which a mobile advertisingserver provides targeted mobile advertising to mobile devices inaccordance with the teachings of this disclosure.

FIG. 7 is a flowchart depicting a process by which a mobile advertisingserver determines the effectiveness of mobile advertising to mobiledevices in accordance with the teachings of this disclosure.

FIG. 8 is a flowchart depicting a process by which a mobile advertisingserver matches sales records to mobile devices of the buyers of suchsales records in accordance with the teachings of this disclosure.

FIG. 9 is a flowchart depicting a process by which a server matchessales records to mobile devices of the buyers of such sales records inaccordance with the teachings of this disclosure.

FIG. 10 is a block diagram depicting a process by which a server matchesa mobile device to a set of sales records in accordance with theteachings of this disclosure.

A person of ordinary skills in the art will appreciate that elements ofthe figures above are illustrated for simplicity and clarity, and arenot necessarily drawn to scale. The dimensions of some elements in thefigures may have been exaggerated relative to other elements to helpunderstanding of the present teachings. Furthermore, a particular orderin which certain elements, parts, components, modules, steps, actions,events and/or processes are described or illustrated may not be actuallyrequired. A person of ordinary skills in the art will appreciate that,for the purpose of simplicity and clarity of illustration, some commonlyknown and well-understood elements that are useful and/or necessary in acommercially feasible embodiment may not be depicted in order to providea clear view of various embodiments in accordance with the presentteachings.

DETAILED DESCRIPTION

Turning to the Figures and to FIG. 1 in particular, a system formatching store sales records to mobile devices of the correspondingpurchasers, and providing improved mobile advertising is shown andgenerally indicated at 100. The illustrative system 100 includes amobile advertising server system 140 and a database 142 operativelycoupled to the server system 140. The system 100 further includes amobile device location data server system 130 and a database 132operatively coupled to the server system 130. In addition, the system100 includes a sales transaction server system 122 and a database 124operatively coupled to the server system 122. The server systems 122,130 and 140 communicate over a wide area network 120, such as theInternet. The system 100 also includes a set (meaning one or more) ofpoint-of-sale (“POS”) systems 106 and 108 disposed and operated indifferent retail stores 102 and 104 respectively. Purchasers (alsoreferred to herein as users, consumers, shoppers and buyers) own andcarry mobile devices 110, 112 and 114 (such as iPhones and other brandsof smartphones) when they visit the stores 102 and 104 to purchase goodsand/or services. The purchase transactions are conducted and enteredusing the POSes 106-108, which upload the purchase transactions to theserver 122. The mobile devices 110-114 communicate with the system 100via a public phone network 116 or WiFi networks that are operativelycoupled to the wide area network 120. As used herein, the mobile devices110-114 correspond to different and unique buyers carrying and operatingthe devices 110-114.

The server systems 122, 130 and 140 each include at least one servercomputer, and can be standalone servers, distributed server systems,server farm systems or cloud server systems. They are operativelycoupled to and accessible over the wide area network 120. The servers122, 130 and 140 each run a specialized server software application toprovide functionality for matching sales transactions to mobile devices,and providing improved mobile advertising onto the mobile devices. Whena server system is provided by, for example, Amazon's cloud computingservice, the specialized server software application is deployed andruns on server computers of the cloud computing service. Server softwareapplications can be written in computer programming languages, such asJAVA, PYTHON, C#, C++, PHP, etc. Each server computer within the serversystems 122,130,140 includes one or more processing units having one ormore processors or processing cores, some amount memory and one or morenetwork interfaces that are operatively coupled to the processing units.

The databases 124,132,142 can be, for example, relational databasesystems or other types of database systems, such as Google BigTable. Thedatabases 124,132,142 store data which can be retrieved and modified.For example, when a sales transaction is made through the POS 108, thesales record (also referred to herein as a transaction, a purchaserecord and a receipt) is uploaded to the server 122, which then storesit into the database system 124. As used herein, the server system 122represents independent server systems for different retail stores orretail store chains. For example, retail chains Walmart and Target usedifferent server systems to process and maintain their respectiveinventories and sales transactions. The mobile advertising server system140 periodically retrieves sales records from the server system 122 ordirectly from the database 124, and optionally stores them into thedatabase 142. Alternatively, the server system 122 uploads the purchasereceipts to the server system 140. In either case, the server system 140is said to retrieve purchase records from the server system 122. In oneimplementation, the sales transaction data is Association of RetailTechnology Standards (“ARTS”) compliant. Where the sales transactiondata does not follow ARTS compliant, it is normalized to a standardschema that follows ARTS.

The location and time information of the mobile devices 110-114 istracked by the server system 130 and stored in the database system 132.Such location and time data (collectively referred to herein as locationdata) includes, for example, Global Positioning System (“GPS”)coordinates (such as latitude, longitude and altitude), and a mobiledevice timestamp. A timestamp includes date and time when the underlyingmobile device is at the location identified by the GPS coordinates. Asused herein, a timestamp can also represent a range of date and time,such as 5:34 PM to 5:56 PM on Dec. 10, 2015. The location data of amobile device is uploaded to, for example, the server system 130.Alternatively, the location data is derived from various other sources,such as advertising calls, wireless beacons, passive carrier data,social website check-in data, WiFi hotspots, etc. The derived locationdata is stored in, for example, the database 132.

The mobile advertising server system 140 periodically retrieves locationdata of the mobile devices 110-114 from the server system 130 ordirectly from the database 132, and stores it into the database 142.Alternatively, the server system 130 uploads the location data to theserver system 140. In either case, the server system 140 is said toretrieve mobile device location data from the server system 130. Itshould be noted that the location data of a particular mobile device(such as 110) is also the location data of the user of the mobiledevice.

Referring to FIG. 2, a flowchart illustrating a process by which theserver 140 matches sales transactions to mobile devices of thecorresponding buyers, and provides improved advertising to the mobiledevices based on the buyers' purchase history is shown and generallyindicated at 200. In other words, the process 200 allows the server 140to determine the purchase history of a buyer of a particular mobiledevice, analyze the purchase history to derive shopping intelligence onthe buyer, and provide improved advertising on the mobile device. Forexample, the buyer can be a segment like buyer of a certain brand ofproducts. The matching can further enable third parties to generate morerelevant advertising to the mobile device. At 202, the specializedmobile advertising server software application running on the server 140retrieves a set of sales records from, for example, the database 142.The sales records are further illustrated by reference to FIG. 3.

Turning to FIG. 3, a simplified block diagram depicting an illustrativesales record 300 is shown. The purchase receipt 300 includes a storeidentifier (“ID”) 302, a store address 304, a store location 306(represented by, for example, GPS coordinates), a store locationdimension 308 indicating the geographical dimensions of the storecentered around the store location 306, a sales transaction timestamp310, a payment type 312 of the transaction (such as cash, check, debitcard, credit card, etc.), a credit card type 314 (such as VISA,MASTERCARD, AMERICAN EXPRESS, etc.), a last-four digit number 316 of thecredit card number, one or more stockkeeping unit (“SKU”) identifiers318 indicating the products purchased in the transactions, and one ormore product descriptions 320 of the purchased products. The credit cardtype 314 and the last-four digit number 316 are collectively referred toherein as a credit card ID. Moreover, the credit card type 314 and thelast-four digit number 316 each are referred to herein as a credit cardID. A person of ordinary skill in the art would appreciate that therecord 300 can include additional data elements.

In an alternate implementation, the field 314 indicates the type of aretailer Loyalty Card and the field 316 contains the entire number orthe last-four digit of the retailer Loyalty Card. The last-four digit ofeither the retailer Loyalty Card or the credit card is public data. Asused herein, the credit card data and the retailer Loyalty Card data arePayment Card Industry (“PCI”) compliant. In a further implementation,the record 300 includes a purchase ID 322 which uniquely identifies thetransaction. For example, it is generated when the record 300 is storedinto the database 142. It should be noted that data contained in therecord 300 is public data that is not protected under relevant privacylaws.

Turning back to FIG. 2, at 204, the specialized server softwareapplication retrieves a set of mobile device location data records from,for example, the database 142. The mobile device location data recordsare further illustrated by reference to FIG. 4. Referring now to FIG. 4,an illustrative mobile device location data records is shown andgenerally indicated at 400. The location record 400 includes a mobiledevice ID 402, a mobile device location 404 (such as a GPSlatitude-longitude pair), a mobile device timestamp 406 indicating thetime or a time range when the mobile device is located at the location404, and additional data 408. The mobile device ID 402 can be anIdentifier for Advertising (“IDFA”) proposed by Apple Inc., an AndroidAdvertising ID (“AAID”) proposed by Google, or a Windows Advertising ID(“WAID”) proposed by Microsoft or other unique mobile device identifierprovided by an operating system or manufacturer. The ID 402 uniquelyidentifies a mobile device. It should be noted that data contained inthe record 400 is public data that is not protected under relevantprivacy laws. It should be noted that additional data elements can beincluded in the record 400.

Turning back to FIG. 2, at 206, the specialized server softwareapplication matches sales records to mobile devices of the purchasers ofproducts on the sales records. One illustrative matching process isshown by reference to FIG. 8. Referring now to FIG. 8, a flowchartdepicting the process by which the server 140 matches sales records tomobile devices is shown and generally indicated at 800. At 802, for eachsales record, the specialized server software application determines acluster of mobile device location data records of mobile devices thatare located at the store when the underlying sales transaction iscreated through, for example, a POS. Accordingly, at 802, atransaction-to-devices map between each sales transaction and a clusterof mobile devices is formed. A mobile device (such as 110) is said to beat or located at a store (such as 102) when the GPS location 404 of themobile device 110 is within the store location dimension 308 from thestore location 306, and the timestamp 310 of the sales record matchesthe timestamp 406.

The GPS location 404 of the mobile device 110 is said to be within thestore location dimension 308 from the store location 306 when thelocation 404 is within the geographical area (such as a rectangle or acircle centered around the store location 306) defined by the storelocation dimension 308 and the store location 306. The timestamp 310 issaid to match the timestamp 406 when the timestamp 310 is same as thetimestamp 406, the timestamp 310 is within the timestamp 406 in the casewhere the timestamp 406 is a range of time, or the timestamp 310 iswithin a predetermined range (such as one minute) from the timestamp406.

It should be noted that the process 800 can be performed iteratively toimprove matching accuracy and process new sales records. In addition,other matching methods can be applied to determine the buyer or buyersof a given set of sales transactions. At 804, the specialized serversoftware application determines a list of sales records having a commoncredit card type 314 and a common last-four digit number 316. It shouldbe noted that each sales record in the list corresponds a mobile devicecluster and a transaction-to-devices map. In addition, at 804, theserver application may determine multiple lists of sales records.

At 806, the specialized server software application determines a mobiledevice, such as the mobile device 110, which is present in the mobiledevice cluster of each sales record in the list of sales recordsidentified at 804. Alternatively, at 806, the specialized serversoftware application determines a mobile device that is present in themobile device clusters of a certain portion (such as 80%) of salesrecords in the list of sales records identified at 804. At 808, thespecialized server software application stores the associations betweenthe mobile device determined at 806, and the sales records in the listinto the database 142. The association, also referred to herein asdevice-transaction record and purchaser-transaction record, is furtherillustrated by reference to FIG. 5.

Referring to FIG. 5, a simplified block diagram illustrating a mobiledevice-transaction record is shown and generally indicated at 500. Therecord 500 includes a mobile device ID 402 and a purchase record ID 322.A collection of the records 500 of a common mobile device identifies apurchase history (also referred to herein as shopping history) of thebuyer owning the mobile device.

Turning back to FIG. 2, at 208, the specialized server softwareapplication analyzes the purchases of buyers, such as a buyercorresponding to the mobile device 110. The analysis results inintelligence about the purchase behavior, purchased products, productsof likely future purchases, consumption power, and other information ofthe buyer. For example, at 208, the server 140 determines that the buyerof the mobile device 110 purchases a pack of soft drinks each week.

At 210, the specialized server software application applies theintelligence into the buyer's consumption, and provides targeted mobileadvertising to the mobile device 110 of the buyer. For example, thespecialized server software application sends a promotion (also referredto herein as mobile advertisement) for soft drink of a particular brandto the mobile device 110. As an additional example, the applicationreceives match metadata and can send a contextually relevant promotionto the device 110. The promotion indicates, for example, the brand, theproduct, the price, a discount, and/or other marketing information. At212, the specialized server software application stores the promotionsent to the mobile device 110 into the database 142. The storedinformation at 212 is also referred to herein as a mobile advertisementrecord, which indicates the promotion, the mobile device 110, the timeof the improved mobile advertisement, and other information.

Referring to FIG. 6, a flowchart depicting a process by which the server140 performs the element 210 is shown and generally indicated at 600. At602, the server determines a product to promote using the improvedmobile advertising. For example, products are categorized into segments.Each buyer's purchase history is then analyzed to determine the segmentsof products that the buyer has purchased. The selected product, such asa new brand or type of soft drink, is chosen from one of the segments.At 604, the specialized server software application determines themobile devices to send the promotion to. For example, at 604, the server140 selects a group of mobile devices of buyers who have purchased thesame type of product in the last week or month. At 606, the specializedserver software application sends the promotion to the selected mobiledevices over the network 120. The mobile advertisement can be sent tothe mobile devices through one or more mobile applications, web pages,audio, video, application programming interview (“API”), web services,or other type of media.

The present teachings can also be used to determine the effectiveness ofthe mobile advertising, which is further illustrated by reference toFIG. 7. At 702, the specialized server software application running onthe server 140 selects a group of mobile devices that have received aparticular mobile advertisement. This group of mobile devices isreferred to herein as an exposed group of mobile devices. The buyersowning the exposed group of mobile devices are referred to herein as anexposed group of buyers. At 704, the specialized server softwareapplication selects a second group (also referred to herein as a controlgroup of mobile devices) of mobile devices. The buyers owning thecontrol group of mobile devices are referred to herein as a controlgroup of buyers. The control group does not receive the mobileadvertisement. In addition, the control group of buyers has the same orsimilar purchase history as the exposed group of buyers. For example,the two groups have purchased similar products of similar prices withsimilar purchase pattern.

At 706, the specialized server software application retrieves purchaserecords of the exposed group of buyers. The retrieved purchasetransactions are entered after the mobile advertisement is sent to theexposed group of mobile devices. At 708, the specialized server softwareapplication retrieves purchase records of the control group of buyers.The retrieved purchase transactions are entered after the mobileadvertisement is sent to the control group of mobile devices. At 710,the specialized server software application compares the purchaserecords of the exposed group of buyers to that of the control group ofbuyers to determine the effectiveness of the mobile advertisement sentto the exposed group of mobile devices. For example, where the mobileadvertisement is a promotion for a new tablet computer model from aparticular maker. The total purchases of the new computer model by theexposed group is determined and compared to that of the control group.For instance, where the respective total sales are $200,000 and$100,000, the effectiveness of the improved mobile advertising is thus200%.

In a further implementation, the system 100 includes a third-partyserver system 152, such as a marketer's server system. In such a case,the server system 152 receives the consumer intelligence informationfrom the server system 140 and then performs the process 600.

Referring now to FIG. 9, a flowchart depicting a process by which theserver system 140 performs element 206 (FIG. 2) is shown and generallyindicated at 900. At 902, the server software application running on theserver 140 defines a mobile data sphere <MCi, d, t> for each mobile datapoint MC=(id, ts, I). i is a positive integer serving as an index; d isa physical distance from the location reported for that mobile device ID402; t stands for a radius of time in seconds from the mobile devicetimestamp 406; id stands for the mobile device ID 402; ts stands for themobile device timestamp 406; and I stands for the mobile device location404. Accordingly, each MC corresponds to a record 400.

At 904, the server software application defines a transaction sphere<Ti, d, t> for each sales transaction T=(id, ts, I, items). Here, dstands for a distance from the store location 306 of the salestransaction; t stands for a radius of time in seconds from the timestamp310; id stands for the purchase ID 322; ts stands for the timestamp 310;I stands for the store location 306; and items stand for the product SKU318 or a collection of purchased items in general.

At 906, the server software application compares every mobile datasphere <MCi, d, t> to every transaction sphere <Ti, d, t> to produce twodatasets. The first dataset is keyed by the tuple <MCi, d, t> while thesecond dataset is keyed by the tuple <Ti, d, t>. When the mobile datasphere <MCi, d, t> overlaps with the tuple <Ti, d, t>, the correspondingmobile data point and transaction are paired. Accordingly, for eachmobile data point MCi, a list of transactions Tmc=(T1, T2, . . . ) arepaired with MCi. This list is also denoted herein as MCresults.Similarly, for each transaction Ti, a list of mobile data pointsMCt1=(MC1, MC2, . . . ). This list is also denoted herein as Tresults.The overlap of two spheres can be determined based on Euclideandistance, Manhattan metric, or other metrics.

Accordingly, for each mobile device ID 402, there is a set ofcorresponding mobile data points {MC1, MC2, . . . } and, a list oftransactions for each mobile data point. The two dimensional data mapcan be represented as: Tmid={Tmc1=(T1,T2, . . . ), Tmc2=(T3, T4, . . .), Tmc3=(T5, T6, . . . )}, mid stands for mobile device ID 402. Tofilter the list Tmid and extract a set of sales transactions made by theuser of the mobile device, at 908, the server software applicationcreates a similarity function SF(T1, T2), which takes any twotransactions and returns a value between [0,1] inclusively andcontinuously. A similarity of 0 indicates the two objects are notsimilar. A value of 1 indicates the objects are identical. The purposeof the function is to measure the similarity of any two transactionsconsistently and objectively. Example implementations for this functioninclude the Jaccard Index on the transaction items, and modified Jaccardindex with an additional point-at-infinity, Tanimoto similarity, andSørensen-Dice index. In a further implementation, machine-learnedsimilarity functions are created using supervised and unsupervisedlearning algorithms. Such similarity functions are created using, forexample, training set of known purchase history.

At 910, the server software application applies the similarity functionto {Tmc1=(T1,T2, . . . ), Tmc2=(T3, T4, . . . ), Tmc3=(T5, T6, . . . )}.For example, the server software application applies the similarityfunction to every combination of transactions pairwise of TMid. Theapplication determines the set of transactions made by the user of themobile device.

In a further implementation, the transaction vector (id, ts, I, items)is expanded to include additional data, such as transactional meta-data.For example, Tenriched=(id, ts, I, items, metaData1, metaData2, . . . ).The additional transaction meta-data elements include, for example,product size, product brand, purchase tender meta-data (such as creditcard numbers, loyalty numbers, NFC identifiers, etc.). Such additionalmeta-data points can be used to generate modified similarity functionsusing more sophisticatedly trained machine learned outputs. Theadditional dimensions of vector clustering can produce more accuratedetermination of a mobile device user's sales transactions.

In one implementation, instance-based machine learning algorithms (suchas nearest-neighbor) are used for matching a mobile device to a list ofsales records. Nearest neighbors (also known as similarity search)consist of a series of unsupervised neighbors-based learning algorithms,techniques and data structures that are applied to a data set X of npoints in a k-dimensional vector space V to find k points (such as POStransactions) that are nearest to a given input point (such as mobiledevice data point) or a set of points in Y, which are furtherillustrated in FIG. 10. x stands for a mobile data point; kn stands fora sales transaction; and d_(n) stands for distance between a mobile datapoint and a transaction. The various nearest neighbor approaches dependon a few factors, such as number of data points, number of features(meaning dimensions) and similarity. The similarity is determined by,for example, distance functions (such as Euclidean, Cosine, Jaccard,1-norm, . . . ).

Linear search, K-D Tree and Ball Tree algorithms can be used to matchmobile devices to respective purchase history. Linear search is abrute-force method used to find the nearest-neighbor of a point x in adatabase Y. Linear search includes the computation of the distancesbetween the point x (meaning mobile device data point) and all points(meaning sales transactions T) in Y, and sorting the distances to findthe smallest ones. Smaller distance means higher similarity between theobjects. A similar linear approach includes computing the distance frompoint x to every other point in the database Y, and keeping track of theshortest distance. In such a case, the system does not need to sort thedistances. No additional space complexity is necessary.

For a low-dimensional space (such as spaces with less than 20dimensions). a tree-based data structure, K-D Tree (also known asK-dimensional tree) can be used to organize data points in a space withk-dimensions. Using the K-D Tree data structure, if a point MC (meaninga mobile data point) is very distant from a point T₁ (meaning a salestransaction), and point T₁ is close to a point T₂ (meaning a salestransaction), then point MC and T₂ are also distant from each other arethus not similar. Consequently, T₂ can be discarded without having toexplicitly calculate its distance from MC. Accordingly, with the K-DTree algorithm, the computational cost of nearest-neighbor algorithm canbe reduced drastically.

If the datasets (such as Tmc1) have a high number of dimensions, theBall Tree can be a more efficient data structure for determining amobile device user's sales records. Ball Tree speeds up the discovery ofneighbor points. While the KD-trees partition data is based on Cartesianaxes, in Ball Trees the data is partitioned into D-dimensionalhyperspheres (also referred to as balls), represented each by a treenode containing a subset of points to be searched. Each point can onlybelong to one ball based upon its distance from the ball's center (alsoreferred to as centroid). Each leaf node in the tree defines a ball anddefines all data points inside that ball. During a neighbor search, thealgorithm maintains a priority queue of the k-nearest points. For eachvisiting node, any subtree whose distance from the MC is greater thanthe furthest point encountered can be ignored for the rest of thesearch. The tree pruning reduces complexity. A point MC must fall withinany of the hyperspheres. All the points T_(n) in the same hyperspherewill be considered nearest, hence similar to the point MC.

Brute-force approach can be computationally very expensive when thedatabases are large and contain with billions of records where eachrecord may have hundreds of dimensions. In such a case, similar itemscan be quickly found using locality-sensitive hashing for approximate ornear matches. However, this will not find the exact matches but only themost similar pairs or all pairs above a certain similarity threshold.With this approach, every data point (such as a mobile device datapoint) will be hashed and it's expected that similar data points (suchas transactions), such as those points that have a small distance fromeach other, will have a similar hash value. With a high probability,these points are going to be hashed to the same bucket. With localitysensitive hashing techniques, as often happens in machine learning, aseries of distance measures can be used to find distance betweenvectors, such as Euclidean, Cosine, Edit, Hamming and Jaccard.

A min-wise hash using Jaccard index can be used as the hashing method.The Jaccard Similarity can be defined as follow:

J(A,B)=|A∩B|/|AUB|

Jaccard Similarity defines the number of items two sets have in commondivided by the total number of items in both sets. J=1 if the setscontain exactly the same items, while J=0 if the sets have no items incommon. Any items in between are defined by (0<=J<=1).

If a mobile device data point and a sales transaction define the setsand the features in each vector define the elements of each set, thenthe similarity between them can be computed. In practice, the functionwill calculate the probability that an element from the sets is also intheir intersection. More elements (meaning features) are common to bothsets. A higher probability means a higher similarity between the mobiledevice data points and the sales transaction vectors. Using the MinHashapproach, the system 100 estimates the Jaccard similarity for each pairJ(A,B) more efficiently without having to calculate union andintersection for each set, which can be computationally expensive.

In a further implementation, the server 140 tracks and stores the user'sinteraction (such as clicks) with mobile advertisements sent to themobile device 110. The server 140 then use such data to refinecollaborating filtering and deep machine learning models to make moreaccurate recommendations of goods to the user.

Various collaborative filtering techniques can be used to examine ashopper's POS history to find similarities with other shoppers and/orcorrelations between items. Such models are based on explicit orimplicit ratings, preferences, likes, etc. In one implementation, thesystem 100 does not take into consideration any product features ordescriptive text, since the system 100 may not be aware of the type ofitem, or details about the items the shopper is interacting with, exceptthat the user has expressed a certain preference for the item. Somedrawbacks of collaborative filtering can be overcome using content-basedalgorithms that calculate similarities using item metadata and contentsuch as keywords, tags, or any text describing the product and user'sprofile. This approach focuses mainly on similarities between items,rather than which user has interacted with the items.

A machine deep learning system can analyze POS sales data and learnpatterns and shopper's profiles. Such a learning system can be used tomodel the interest and habits of shoppers over time. The neural networkcomposed of various layers, using input and output nodes learns andadapts continuously according to the shopper's preferences andinteractions with the mobile advertisements. Whether the shopper hasinteracted positively or negatively, new data is added to the neuralnetwork, reshaping it and updating shopper's profiles to discover newpatterns and interests more accurately. Using neural network to buildand recognize patterns between users and items. Such patterns are thenenhanced by using collaborative filtering and content-based to servepersonalized content.

In a further implementation, the accuracy and effectiveness of thepromotions to a mobile device user is evaluated using one or moretechniques, such as A/B testing, Root Mean Squared Error (“RMSE”), etc.A/B testing checks whether the system 100 actually increases usage, webtraffic, clicks, etc. Selecting a test user putting on the side part ofthe training data. The recommendation system then generatesrecommendations for the test user based only on a part of the userhistory. The new recommended items are compared to the data that washeld back to see if the predictions are correct, RMSE predicts ratingfor a test set of user-item pair which are compared to the real ratingsfrom a test set of training data. The average difference from the realvalue is calculated. Precision is defined by the ratio of the number ofrelevant recommendations and the top N (meaning a positive integer)recommendations made. A precision score of 1.0 means that everyrecommendations from the top N list was relevant. Recall is defined bythe ratio of the number of relevant recommendations and the total numberof relevant recommendations. A recall score of 1.0 means that allrelevant recommendations were in the top N list.

Obviously, many additional modifications and variations of the presentdisclosure are possible in light of the above teachings. Thus, it is tobe understood that, within the scope of the appended claims, thedisclosure may be practiced otherwise than is specifically describedabove. For example, the process 800 is implemented using machinelearning methods and statistical models to match sales records to mobiledevices more accurately. As an additional example, the process 200 isperformed iteratively to improve matching accuracy. As still a furtherexample, the measure of mobile advertising effectiveness is determinedbased on the number of units sold to the exposed group and the controlgroup respectively.

The foregoing description of the disclosure has been presented forpurposes of illustration and description, and is not intended to beexhaustive or to limit the disclosure to the precise form disclosed. Thedescription was selected to best explain the principles of the presentteachings and practical application of these principles to enable othersskilled in the art to best utilize the disclosure in various embodimentsand various modifications as are suited to the particular usecontemplated. It should be recognized that the words “a” or “an” areintended to include both the singular and the plural. Conversely, anyreference to plural elements shall, where appropriate, include thesingular.

It is intended that the scope of the disclosure not be limited by thespecification, but be defined by the claims set forth below. Inaddition, although narrow claims may be presented below, it should berecognized that the scope of this invention is much broader thanpresented by the claim(s). It is intended that broader claims will besubmitted in one or more applications that claim the benefit of priorityfrom this application. Insofar as the description above and theaccompanying drawings disclose additional subject matter that is notwithin the scope of the claim or claims below, the additional inventionsare not dedicated to the public and the right to file one or moreapplications to claim such additional inventions is reserved.

What is claimed is: 1-6 (canceled)
 7. A mobile device and salestransaction matching system comprising: i) a database; ii) a servercomputer having a memory, a processing unit accessing said memory, anetwork interface coupled to said processing unit and operativelycoupled to said database, and a specialized server software applicationoperating on said processing unit, wherein said server computer isadapted to communicate with a sales transaction server system and amobile device location data server system; iii) said specialized serversoftware application adapted to: 1) retrieve a set of purchase recordsfrom said sales transaction server system; 2) retrieve a set of mobiledata points from said mobile device location data server system, whereinsaid set of mobile data points corresponds to a first mobile device; 3)for each mobile data point within said set of mobile data point, definea mobile data sphere; 4) for each purchase record within said set ofpurchase records, define a transaction sphere; 5) compare each saidmobile data sphere with each said transaction sphere to determine a listof over lapping purchase records for each mobile data point, therebyforming a plurality of lists of over lapping purchase records for saidfirst mobile device, wherein said mobile data sphere of said each mobiledata point overlaps with said transaction sphere of each purchase recordwithin said list of over lapping purchase records corresponding to saideach mobile data point; 6) create a similarity function for determiningsimilarity between transactions; and 7) apply said similarity functionto each pair of purchase records within said plurality of lists of overlapping purchase records to determine purchase records of a user of saidfirst mobile device.
 8. The mobile device and sales transaction matchingsystem of claim 7 wherein: 1) each said mobile data sphere indicates aphysical distance from a location of corresponding said mobile datapoint and a radius time from a timestamp of corresponding said mobiledata point; and 2) each said transaction sphere indicates a physicaldistance from a store location of corresponding said purchase record andradius of time from a timestamp of corresponding said purchase record.9. The mobile device and sales transaction matching system of claim 8wherein a mobile data sphere is said to be overlapping with atransaction sphere based on a Euclidean distance or a Manhattan metric.10. The mobile device and sales transaction matching system of claim 8wherein said similarity function returns a value between zero and onewhen applied to a pair of purchase records.
 11. The mobile device andsales transaction matching system of claim 10 wherein said similarityfunction is a Jaccard Index, a modified Jaccard Index, a Tanimotosimilarity, or a Sorensen-Dice Index.
 12. The mobile device and salestransaction matching system of claim 10 wherein said similarity functionis created based on a set of training purchase records.
 13. The mobiledevice and sales transaction matching system of claim 7 wherein said setof purchase records is public data and said set of mobile data points ispublic data.
 14. The mobile device and sales transaction matching systemof claim 7 wherein each purchase record within said set of purchaserecords includes a store location, a sales timestamp, and a productidentifier, and wherein each data point within said set of mobile datapoints includes a mobile device identifier, a mobile device location,and a mobile device timestamp.